if hilite of bg btn "help" then set hilite of bg btn "help" to false
end openBackground
on openCard
global listScroll,currentView
setCdNo
if cantModify of this stack then setView
if currentView is "lists view" then
fillInFields
set scroll of fld "list" to listScroll
end if
unlock screen
end openCard
on closeCard
global listScroll
lock screen
put the scroll of fld "list" into listScroll
end closeCard
--• MESSAGE HANDLERS
on setLibraryButtons
get cd fld "Library title" of cd "Title card"
if the number of words in it < 2 then exit setLibraryButtons
get word 1 of it
if it is not "Hardware" then set hilite of bg btn "Hardware" to false
if it is not "Technical" then set hilite of bg btn "Technical" to false
if it is not "Networks" then set hilite of bg btn "Networks" to false
if hilite of bg btn it is false then set hilite of bg btn it to true
end setLibraryButtons
on goStack whichStack
global findParams,lastFindTerms
dialogIt "Sorry. This version contains hardware graphics only."
exit goStack
if the hilite of bg btn whichStack then exit goStack
set lockMessages to true
set lockRecent to true
lock screen
put the long name of this stack into startStack
go stack "Apple Graphics - " & whichStack
if the long name of this stack is startStack then
-- You clicked cancel and didn't leave the original stack
exit goStack
end if
go bg "the collection"
unlock screen with visual effect dissolve
openBackground
openCard
put empty into findParams
put empty into lastFindTerms
end goStack
-- The next couple of handlers manage the paths to the graphics. This
-- is critical since DispPict and TinyPict use the paths stored in the
-- paths field on the Documents card of the Home path to find a given
-- graphic file.
on updateDocuments newPaths
--Updates the global documents. The newPaths parameter is optional,
--and is paths that need to be added to the Documents card in the
--Home stack.
global documents
if cantModify of this stack then exit updateDocuments
lock screen
set lockRecent to true
set lockMessages to true
push cd
go home
go cd "documents"
if the result is not empty then
--the Documents card in the Home stack doesn't appear to exist.
dialogIt "The stack is having trouble locating the" && "Documents card in the Home stack. Consequently, the stack" && "may have trouble finding the original graphics."
pop cd
exit updateDocuments
else
--the Documents card in the Home stack was found.
if newPaths is NOT empty then
put newPaths into line (the number of lines in fld "paths" + 1) of fld "paths"
end if
end if
put fld "paths" into documents
pop cd
end updateDocuments
on checkDocuments newPaths
--Checks the document paths in this stack against the global
--Documents. Discrepencies are put into newPaths and sent to the
--handler updateDocuments to be added to the Documents card in the
--Home stack. NewPaths is optional, and allows you to add paths to
--the storage field in this stack.
global documents
put cd fld "paths to graphics" of cd "Index storage" into existPaths
if newPaths is not empty then
repeat with N = 1 to the number of lines in newPaths
if not isWithin(line N of newPaths,existPaths) then
put line N of newPaths into line (the number of lines in existPaths + 1) of existPaths
end if
end repeat
put existPaths into cd fld "paths to graphics" of cd "Index storage"
end if
put empty into newPaths
repeat with N = 1 to the number of lines in existPaths
if not isWithin(line N of existPaths,documents) then
put line N of existPaths into line (the number of lines in newPaths + 1) of newPaths
end if
end repeat
if newPaths is not empty then updateDocuments newPaths
end checkDocuments
--• MENU SCRIPTS
on buildMenus
buildCatalogMenu
buildIndexesMenu
buildManagementMenu
buildCardMenu
end buildMenus
on buildCatalogMenu
global catalogMenu
put empty into catalogMenu
put "Catalog Folder…" & return after catalogMenu
put "Catalog File…" & return after catalogMenu
if cantModify of this stack then
repeat with i = 1 to the number of lines in catalogMenu
put "(" before line i of catalogMenu
end repeat
end if
end buildCatalogMenu
on buildIndexesMenu
global indexesMenu
put empty into indexesMenu
put "Build All Indexes" & return after indexesMenu
put "(-" & return after indexesMenu
put "Build Keyword Index" & return after indexesMenu
put "Add to Keyword Index…" & return after indexesMenu
put "Delete from Keyword Index…" & return after indexesMenu
put "Export Keyword Index" & return after indexesMenu
put "(-" & return after indexesMenu
put "Build Book Index" & return after indexesMenu
put "Add to Book Index…" & return after indexesMenu
put "Delete from Book Index…" & return after indexesMenu
put "Export Book Index" & return after indexesMenu
put "(-" & return after indexesMenu
put "Build File Name Index" & return after indexesMenu
put "Build File Format Index" & return after indexesMenu
if cantModify of this stack then
repeat with i = 1 to the number of lines in indexesMenu
put "(" before line i of indexesMenu
end repeat
end if
end buildIndexesMenu
on buildManagementMenu
global managementMenu
put empty into managementMenu
put "Import Data…" & return after managementMenu
put "Delete Data" & return after managementMenu
put "(-" & return after managementMenu
put "Set Browsing Speed…" & return after managementMenu
put "Sort by File Name" & return after managementMenu
put "Print Cards from Book…" & return after managementMenu
if cantModify of this stack then
repeat with i = 1 to the number of lines in managementMenu
put "(" before line i of managementMenu
end repeat
end if
end buildManagementMenu
on buildCardMenu
global cardMenu
put empty into cardMenu
put "Build Thumbnail" & return after cardMenu
put "Format Description" & return after cardMenu
put "(-" & return after cardMenu
put "Assign Keyword…" & return after cardMenu
put "Delete Keyword…" & return after cardMenu
put "(-" & return after cardMenu
put "Assign Book…" & return after cardMenu
if cantModify of this stack then
repeat with i = 1 to the number of lines in cardMenu
put "(" before line i of cardMenu
end repeat
end if
end buildCardMenu
on sortCards
if not the lockMessages then
answer "Sort graphics by File Name?" with Cancel or OK
if it is "cancel" then exit sortCards
end if
put "Sorting cards …"
toggleLockScreen
push cd
set cursor to busy
get the number of this bg
sort by backgroundSort(it)
put empty
pop cd
end sortCards
on changeView whichView
global currentView,listScroll
set cursor to watch
lock screen
if whichView is "lists view" then
put true into boolean
put "lists view" into currentView
put "iris close" into theEffect
showListName
fillInFields
set scroll of fld "list" to listScroll
else
put false into boolean
put "graphics view" into currentView
put "iris open" into theEffect
end if
-- ABOUT THIS GRAPHIC view
set visible of bg btn "description:" to not boolean
set visible of fld "description field" to not boolean
set visible of bg btn "format:" to not boolean
set visible of fld "format field" to not boolean
set visible of bg btn "file name:" to not boolean
set visible of fld "file name field" to not boolean
set visible of bg btn "keywords:" to not boolean
set visible of fld "keywords field" to not boolean
set visible of bg btn "appears in books:" to not boolean
set visible of fld "appears in books field" to not boolean
set visible of bg btn "info blanket" to not boolean
set visible of bg btn "Hardware" to not boolean
set visible of bg btn "Technical" to not boolean
set visible of bg btn "Networks" to not boolean
-- LISTS view
set visible of bg btn id 353 to boolean
--the name of the open list
set visible of fld "list" to boolean
set visible of bg btn "new list" to boolean
set visible of bg btn "open list…" to boolean
set visible of bg btn "save" to boolean
set visible of bg btn "delete list…" to boolean
set visible of bg btn "print list…" to boolean
set visible of bg btn "add this graphic" to boolean
set visible of bg btn "delete #…" to boolean
deleteEntryVisible false
setBtnHilites
unlock screen with visual effect theEffect
end changeView
on setBtnHilites
global currentView
if currentView is "lists view" then put true into boolean
else put false into boolean
set hilite of bg btn "lists view" to boolean
set hilite of bg btn "graphics view" to not boolean
end setBtnHilites
on deleteEntryVisible boolean
if boolean then
put "Click an entry to remove it from the list." into fld "delete msg"
else
set hilite of bg btn "done" to true
set hilite of bg btn "done" to false
end if
lock screen
if not boolean then put empty into fld "delete msg"
--set visible of bg btn id 407 to boolean
set visible of bg fld "delete msg" to boolean
set visible of bg btn "done" to boolean
unlock screen
end deleteEntryVisible
on showNew newGraphics,text
put sortContainer(newGraphics) into theList
get listDialog(theList,13,text,"No","OK")
end showNew
on showExisting theList
put "These cards already existed and weren't added." into text
get listDialog(theList,13,text,"No","OK",601)
end showExisting
on showHelp boolean
lock screen
set the showPict of this card to not(boolean)
set the visible of fld "banner" to boolean
set the visible of bg btn "Help Section" to boolean
set the visible of bg btn "Help Close" to boolean
set the hilite of bg btn "Help" to boolean
if boolean then unlock screen with zoom open
else
put empty into fld "banner"
unlock screen with zoom close
end if
end showHelp
on setView
global currentView
if currentView is "ags lists" then
send mouseUp to bg btn "lists view"
showListName
else send mouseUp to bg btn "graphics view"
end setView
on removeCdPict
put the tool into toolStatus
choose select tool
doMenu "select all"
doMenu "clear picture"
choose toolStatus
end removeCdPict
on controlKey whichKey
-- keyboard shortcuts using the control key.
-- whichKey is the ASCII code for the key hit with the control key
-- 1 is the letter a.
if whichKey = 1 then send mouseUp to bg btn "add this graphic"
--Remove this and calling handlers from the toolkit.
put bg fld "file name field" into fileName
put the long name of this stack into longName
delete char 1 to 7 of longName
delete last char of longName
put getPath(longName) into longName
put "other files:*graphic files:" after longName
return longName & char 1 of fileName & "aaa-" & char 1 of fileName & "zzz:" & fileName
end buildPicturePath
function backgroundSort backgroundNumber
if the number of this background < backgroundNumber then
return "a"
else if the number of this background > backgroundNumber then
return "zzzzzzzzz"
else
return line 1 of background field "File name field"
end if
end backgroundSort
function cardPictureExists
--returns true if a card picture exists
put the userLevel into userStatus
if the userLevel < 3 then set the userLevel to 3
put the tool into toolStatus
choose select tool
doMenu "select"
if the tool = "lasso tool" then
--a card picture does exist
put true into thisText
else
--no card picture exists
put false into thisText
end if
choose toolStatus
set the userLevel to userStatus
return thisText
end cardPictureExists
function isEPN whichContainer
if char 1 of whichContainer is in "0123456789" OR (char 1 to 2 of whichContainer = "pX") OR (char 1 to 2 of whichContainer = "pM") OR (char 1 to 3 of whichContainer = "k2s") OR (char 1 to 3 of whichContainer = "pGE") OR (char 1 to 3 of whichContainer = "kmb") OR (char 1 to 4 of whichContainer = "APDA") OR (char 1 to 5 of whichContainer = "m5116") then return true
return false
end isEPN
function isFigNo whichContainer
if char 1 to 3 of whichContainer = "fig" OR char 1 to 2 of whichContainer = "pg" OR char 1 to 3 of whichContainer = "pge" OR char 1 to 5 of whichContainer = "panel" then return true
return false
end isFigNo
-- part 391 (button)
-- low flags: 80
-- high flags: 0001
-- rect: left=8 top=8 right=27 bottom=506
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 200
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Menu blanket
-- part 374 (button)
-- low flags: 00
-- high flags: 0002
-- rect: left=240 top=50 right=307 bottom=505
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 156
-- text size: 13
-- style flags: 0
-- line height: 17
-- part name: Info Blanket
-- part 371 (field)
-- low flags: 81
-- high flags: 0007
-- rect: left=247 top=102 right=272 bottom=498
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 0
-- font id: 4
-- text size: 9
-- style flags: 0
-- line height: 12
-- part name: List
----- HyperTalk script -----
on mouseUp
put clickLine(the name of me) into whichLine
selectLine whichLine,the short name of me
findEntry whichLine,line whichLine of me,the name of me
end mouseUp
-- part 216 (button)
-- low flags: 00
-- high flags: A001
-- rect: left=42 top=314 right=334 bottom=139
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 200
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: 29 of 619
----- HyperTalk script -----
on mouseUp
send findCdNumber to bg btn "find…"
end mouseUp
-- part 12 (button)
-- low flags: 00
-- high flags: 0000
-- rect: left=21 top=313 right=335 bottom=39
-- title width / last selected line: 0
-- icon id / first selected line: 23716 / 23716
-- text alignment: 1
-- font id: 200
-- text size: 10
-- style flags: 0
-- line height: 13
-- part name: Prev
----- HyperTalk script -----
on mouseDown
global ticksToWait
if the commandKey is down then
send setBrowseSpeed to bg btn "management"
exit mouseDown
end if
set hilite of me to true
go prev cd of this bg
repeat while the mouse is down
put (the ticks + ticksToWait) into stopTicks
repeat until stopTicks < (the ticks)
if the mouse is up then
set hilite of me to false
exit mouseDown
end if
end repeat
go prev cd of this bg
end repeat
set hilite of me to false
end mouseDown
-- part 29 (field)
-- low flags: 01
-- high flags: 0007
-- rect: left=244 top=123 right=204 bottom=501
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 0
-- font id: 200
-- text size: 10
-- style flags: 0
-- line height: 13
-- part name: Keywords field
----- HyperTalk script -----
on mouseUp
if the optionKey is down and the shiftKey is down then
delete line clickLine(the name of me) of me
exit mouseUp
end if
put line clickLine(the name of me) of me into whichText
if whichText is empty then exit mouseUp
set cursor to watch
findKWSetup whichText
end mouseUp
-- part 84 (button)
-- low flags: 00
-- high flags: A000
-- rect: left=239 top=105 right=123 bottom=303
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 0
-- font id: 200
-- text size: 10
-- style flags: 0
-- line height: 13
-- part name: Keywords:
----- HyperTalk script -----
on mouseUp
send findKW to bg btn "find…"
end mouseUp
-- part 85 (button)
-- low flags: 00
-- high flags: A000
-- rect: left=239 top=84 right=99 bottom=302
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 0
-- font id: 200
-- text size: 10
-- style flags: 0
-- line height: 13
-- part name: File Name:
----- HyperTalk script -----
on mouseUp
send findID to bg btn "find…"
end mouseUp
-- part 93 (button)
-- low flags: 00
-- high flags: A000
-- rect: left=411 top=84 right=99 bottom=458
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 0
-- font id: 200
-- text size: 10
-- style flags: 0
-- line height: 13
-- part name: Format:
----- HyperTalk script -----
on mouseUp
send findFormat to bg btn "find…"
end mouseUp
-- part 94 (field)
-- low flags: 01
-- high flags: 0002
-- rect: left=457 top=84 right=99 bottom=501
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 0
-- font id: 200
-- text size: 10
-- style flags: 0
-- line height: 13
-- part name: format field
----- HyperTalk script -----
on mouseUp
put line clickLine(the name of me) of me into whichText
if whichText is empty then exit mouseUp
set cursor to watch
findFormatSetup whichText
end mouseUp
-- part 111 (button)
-- low flags: 80
-- high flags: 8004
-- rect: left=368 top=8 right=27 bottom=505
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 200
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Card
----- HyperTalk script -----
on mouseDown
global cardMenu
get menuPop(the name of me)
put item 1 of it into menuT
put item 2 of it into menuL
put BigPop(cardMenu,menuT,menuL) into theChoice
if theChoice = 1 then displayTiny
if theChoice = 2 then
put formatDescription(fld "Description field") into fld "Description field"
deleteFromIndex "Appears in Books field", "Book Index"
end if
if theChoice = 11 then exportIndex "book index","Graphics Book Index"
if theChoice = 13 then
buildFileNameIndex "file name field","File Name Index"
end if
if theChoice = 14 then
buildIndex "format field","File Format Index","file format pointer"
end if
end indexesChoice
on buildAllIndexes
answer "Build all of the indexes?" with "Cancel" or "OK"
if it is "cancel" then exit buildAllIndexes
set lockMessages to true
sortCards
indexesChoice 3
indexesChoice 8
indexesChoice 13
indexesChoice 14
answer "All of the indexes have been built."
openCard
end buildAllIndexes
on buildFileNameIndex indexField,writeField
if not the lockMessages then
answer "Build the" && writeField && "?" with "Cancel" or "OK"
if it is "Cancel" then exit buildFileNameIndex
end if
lock screen
put empty into thisIndex
put empty into cd fld "file name index" of cd "Index storage"
set lockMessages to true
set cursor to watch
push cd
go cd 1 of this bg
put "Building the" && writeField into status
repeat with N = 1 to the number of cds in this bg
showProgress status,round(N/(the number of cds in this bg)*100)
put bg fld "file name field" & "," & the short id of this cd & return after newEntries
if the number of lines in newEntries > 50 then
put (the number of lines in cd fld "file name index" of cd "Index storage") + 1 into thisLine
put newEntries into line thisLine of cd fld "file name index" of cd "Index storage"
put empty into newEntries
end if
go next cd of this bg
end repeat
if newEntries is not empty then appendFileNameIndex newEntries
pop cd
hideProgress
end buildFileNameIndex
on appendFileNameIndex newEntries
put (the number of lines in cd fld "file name index" of cd "Index storage") + 1 into thisLine
put newEntries into line thisLine of cd fld "file name index" of cd "Index storage"
end appendFileNameIndex
on addToBookIndex
ask "Enter the name of the new book:"
if it = empty then exit addToBookIndex
put it into addThis
put readIndex("book index") into bookIndex
if isWithin(addThis,bookIndex) then
dialogIt "The book" && quote & addThis & quote && "already exists in the Book Index."
exit addToBookIndex
end if
ask "What is the Eng. part number?"
if it is empty then put empty into engPartNo
else put return & it into engPartNo
put return & addThis & engPartNo after bookIndex
writeIndex bookIndex, "book index"
deleteDeadLines
sortBookIndex
formatBookIndex
end addToBookIndex
on buildBookIndex
if not the lockMessages then
answer "Build the Book Index?" with "Cancel" or "OK"
if it is "Cancel" then exit buildBookIndex
end if
collectBooks
get cd fld "book index" of cd "Index storage"
if it is empty then exit buildBookIndex
sortBookIndex
formatBookIndex
EXIT TO HYPERCARD -- DEBUG
buildPointers "appears in books field","book index","book pointer"
end buildBookIndex
on collectBooks
lock screen
set lockMessages to true
set lockRecent to true
set cursor to busy
push cd
go cd 1 of this bg
put empty into bookIndex
put "Collecting book names" into status
repeat with j = 1 to the number of cds in this bg
showProgress status,round(j/(the number of cds in this bg)*100)
repeat with i = 1 to (the number of lines in fld "Appears in books field")
set cursor to busy
put line i of fld "Appears in books field" into valueOfThisLine
if valueOfThisLine is empty OR isFigNo(valueOfThisLine) OR isWithin(valueOfThisLine,bookIndex) OR bookIndex contains "^" & valueOfThisLine OR bookIndex contains valueOfThisLine & "^" then
-- This term exists in the book index
next repeat
end if
-- This is a new book or Engineering part number.
put line (i-1) of fld "Appears in books field" into valueOfPrevLine
if valueOfPrevLine is empty then
-- The previous line is empty, this new item is a book.
put valueOfThisLine & return after bookIndex
else
-- This is a new Engineering part number.
put addNewEPN(valueOfThisLine,valueOfPrevLine,bookIndex) into bookIndex
end if
end repeat
go next cd of this bg
end repeat
hideProgress
writeIndex bookIndex,"book index"
end collectBooks
on sortBookIndex
put readIndex("book index") into bookIndex
put sortContainer(bookIndex) into bookIndex
put substitute("^", return,bookIndex) into bookIndex
writeIndex bookIndex, "book index"
end sortBookIndex
on formatBookIndex
put readIndex("book index") into bookIndex
if bookIndex is empty then exit formatBookIndex
set cursor to busy
put 1 into i
put "Formatting Book Index (deleting extra lines)" into status
repeat (the number of lines in bookIndex) times
showProgress status,round(i/(the number of lines in bookIndex)*100)
set cursor to busy
if line i of bookIndex is empty then delete line i of bookIndex
else add 1 to i
end repeat
hideProgress
put 1 into i
put "Formatting Book Index (eng. part nos.)" into status
repeat (the number of lines in bookIndex*2) times
showProgress status,round(i/(the number of lines in bookIndex)*100)
-- If this line is an engineering part no. AND the next line
-- is NOT an EPN, then put a blank line after this line.
set cursor to busy
if isEPN(line i of bookIndex) AND not isEPN(line i + 1 of bookIndex) AND line (i+1) of bookIndex is not empty then
put return & " " after line i of bookIndex
-- Put this space into the line because the XCMD I use to
-- display lists doesn't show empty lines.
end if
add 1 to i
if i = (the number of lines in bookIndex) then exit repeat
end repeat
hideProgress
put 2 into i
put "Formatting Book Index (books)" into status
repeat (the number of lines in bookIndex*2) times
showProgress status,round(i/(the number of lines in bookIndex)*100)
--if this line is a book and it doesn't have an engineering part no
--then put a blank line after this line
set cursor to busy
if isEPN(line i of bookIndex) = false AND line i of bookIndex <> " " then
if isEPN(line i-1 of bookIndex) = false AND line (i-1) of bookIndex <> " " then
put " " & return before line i of bookIndex
end if
end if
if i = (the number of lines in bookIndex) then exit repeat
add 1 to i
end repeat
hideProgress
if the number of lines in bookIndex > 0 then
repeat until last line of bookIndex <> empty
delete last line of bookIndex
end repeat
end if
writeIndex bookIndex, "book index"
end formatBookIndex
on deleteDeadLines
put readIndex("book index") into bookIndex
put 1 into i
put "Formatting Book Index (extra lines)" into status
repeat (the number of lines in bookIndex) times
showProgress status,round(i/(the number of lines in bookIndex)*100)
if line i of bookIndex = empty OR line i of bookIndex = space then
delete line i of bookIndex
else add 1 to i
end repeat
hideProgress
writeIndex bookIndex, "book index"
end deleteDeadLines
--• FUNCTIONS
function addNewEPN newEPN,thisBook,bookIndex
-- newEPN is the Engineering part number (EPN) that needs to be added.
-- thisBook is the book this EPN refers to.
-- bookIndex is the book index.
put offset(thisBook,bookIndex) into numberOfChars
put the number of lines in char 1 to numberOfChars of bookIndex into thisLine
if thisLine is empty then
-- The book does not exist in the book index (this should never happen).
return bookIndex
end if
put "^" & newEPN after line thisLine of bookIndex
return bookIndex
end addNewEPN
-- part 282 (field)
-- low flags: 80
-- high flags: 2002
-- rect: left=15 top=84 right=267 bottom=226
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 0
-- font id: 200
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Banner
-- part 289 (button)
-- low flags: 00
-- high flags: A000
-- rect: left=239 top=205 right=222 bottom=333
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 0
-- font id: 200
-- text size: 10
-- style flags: 0
-- line height: 13
-- part name: Appears in books:
----- HyperTalk script -----
on mouseUp
send findBook to bg btn "find…"
end mouseUp
-- part 290 (field)
-- low flags: 01
-- high flags: 0007
-- rect: left=244 top=222 right=303 bottom=501
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 0
-- font id: 200
-- text size: 10
-- style flags: 0
-- line height: 13
-- part name: appears in books field
----- HyperTalk script -----
on mouseUp
put line clickLine(the name of me) of me into whichText
if whichText is empty then exit mouseUp
set cursor to watch
if isFigNo(whichText) then
selectLine clickLine(the name of me), the short name of me
answer "You can't search by the archive number."
select empty
else findBookSetup whichText
end mouseUp
-- part 298 (field)
-- low flags: 01
-- high flags: 0002
-- rect: left=308 top=62 right=77 bottom=501
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 0
-- font id: 200
-- text size: 10
-- style flags: 0
-- line height: 13
-- part name: description field
----- HyperTalk script -----
on mouseUp
if the shiftKey is down then setMe
else
put line clickLine(the name of me) of me into whichText
if whichText is empty then exit mouseUp
set cursor to watch
findNameSetup whichText
end if
end mouseUp
on setMe
lock screen
if the style of me is "scrolling" then
setSize (top of me + textHeight of me + 2)
set the style of me to rectangle
else
setSize (the bottom of fld "appears in books field")
ask "Enter a description for" && quote & fileName & quote & "." with prevName
if it is empty then exit assignDescription
else put it into prevName
toggleLockScreen
put char 1 to 30 of prevName into fld "description field"
if the length of prevName > 30 then
put "…" after fld "description field"
put prevName into line 2 of fld "description field"
end if
end assignDescription
--• These handler put up dialog boxes to tell you what's going on.
on sayNoNewGraphics
toggleLockScreen
dialogIt "There were no new file names."
toggleLockScreen
end sayNoNewGraphics
on sayDuplicateExists
toggleLockScreen
put getShortName(longName) into fileName
dialogIt "A file with the name “" & fileName & "” is already catalogued.","OK"
toggleLockScreen
end sayDuplicateExists
--• FUNCTIONS
function getValidFiles thisDirectory
--• Search the given directory for valid files.
set cursor to watch
put OurFileInfo(thisDirectory,1) into validFiles
if validFiles is empty then
dialogIt "No valid graphic files were found in the directory" & return & "“" & thisDirectory & "”."
return empty
end if
return validFiles
end getValidFiles
function shallWeContinue counter,newGraphics
toggleLockScreen
put bg fld "file name field" into fileName
put the number of lines in newGraphics into N
-- Fill in the first phrase
if counter = 1 then
--This is the first time through, so begin the dialog box with this.
put N & space into firstPhrase
if N = 1 then put "card was" after firstPhrase
else put "cards were" after firstPhrase
put space & "added to the stack." after firstPhrase
else
-- Let the person know how many cards are left.
if N = 1 then put "There is 1 new card left." into firstPhrase
else put "There are" && N && "new cards left." into firstPhrase
end if
-- Fill in second phrase
put "The current card references the file" && quote & fileName & quote & "." into secondPhrase
-- Fill in third phrase
put "Do you want to" into thirdPhrase
if N = 1 then
put space & "enter information for this new card?" after thirdPhrase
else
put space & "continue entering information for these new cards?" after thirdPhrase
end if
dialogIt firstPhrase & space & secondPhrase & space & thirdPhrase, "No,Yes"
return the result
end shallWeContinue
function memoryAvailable lowerLimit
-- This handler checks available RAM (the heapspace) against the
-- given lowerLimit. If the available memory is less than lowerLimit
-- return false. Else, return true.
if (the heapSpace / 1024) < lowerLimit then
dialogIt "You have only" && the heapspace / 1024 && "RAM available. You should quit HyperCard to avoid losing" && "data.","Continue,Quit"
if the result is "quit" then return false
end if
return true
end memoryAvailable
-- part 405 (button)
-- low flags: 00
-- high flags: 8000
-- rect: left=240 top=28 right=50 bottom=407
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 200
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: About This Graphic
----- HyperTalk script -----
on mouseUp
send mouseUp to bg btn "graphics view"
end mouseUp
-- part 406 (button)
-- low flags: 00
-- high flags: A000
-- rect: left=64 top=283 right=305 bottom=135
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 200
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Find Again
----- HyperTalk script -----
on mouseUp
global findParams
if findParams is empty then answer "Find something first."
else do findParams
end mouseUp
-- part 416 (button)
-- low flags: 00
-- high flags: 8000
-- rect: left=408 top=28 right=50 bottom=504
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 200
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: AGS Lists
----- HyperTalk script -----
on mouseUp
send mouseUp to bg btn "lists view"
end mouseUp
-- part 417 (field)
-- low flags: 81
-- high flags: 2004
-- rect: left=254 top=288 right=331 bottom=489
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 0
-- font id: 200
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Delete msg
-- part 387 (button)
-- low flags: 80
-- high flags: 8002
-- rect: left=430 top=310 right=324 bottom=479
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 200
-- text size: 10
-- style flags: 0
-- line height: 13
-- part name: Done
----- HyperTalk script -----
on mouseUp
deleteEntryVisible false
end mouseUp
-- part 421 (button)
-- low flags: 00
-- high flags: 4006
-- rect: left=241 top=29 right=49 bottom=407
-- title width / last selected line: 0
-- icon id / first selected line: 17764 / 17764
-- text alignment: 1
-- font id: 200
-- text size: 14
-- style flags: 0
-- line height: 18
-- part name: Graphics View
----- HyperTalk script -----
on mouseUp
changeView "graphics view"
end mouseUp
-- part 420 (button)
-- low flags: 00
-- high flags: 0006
-- rect: left=408 top=28 right=49 bottom=504
-- title width / last selected line: 0
-- icon id / first selected line: 17764 / 17764
-- text alignment: 1
-- font id: 200
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Lists View
----- HyperTalk script -----
on mouseUp
changeView "lists view"
end mouseUp
-- part 403 (field)
-- low flags: 81
-- high flags: 2004
-- rect: left=91 top=30 right=56 bottom=422
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: status
----- HyperTalk script -----
--This object AGS only.
on mouseUp
hide me
end mouseUp
-- part 451 (button)
-- low flags: 00
-- high flags: C000
-- rect: left=242 top=314 right=334 bottom=325
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 200
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Hardware
----- HyperTalk script -----
on mouseUp
goStack (the short name of me)
end mouseUp
-- part 452 (button)
-- low flags: 00
-- high flags: 8000
-- rect: left=328 top=314 right=334 bottom=415
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 200
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Networks
----- HyperTalk script -----
on mouseUp
goStack (the short name of me)
end mouseUp
-- part 453 (button)
-- low flags: 00
-- high flags: 8000
-- rect: left=418 top=314 right=334 bottom=502
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 200
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Technical
----- HyperTalk script -----
on mouseUp
goStack (the short name of me)
end mouseUp
-- part 454 (button)
-- low flags: 00
-- high flags: A000
-- rect: left=136 top=283 right=305 bottom=192
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 200
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Go Back
----- HyperTalk script -----
on mouseUp
go back
end mouseUp
-- part 455 (button)
-- low flags: 00
-- high flags: 8000
-- rect: left=193 top=283 right=305 bottom=232
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 200
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Help
----- HyperTalk script -----
--PASTE THE HELP FUNCTIONS OVER THE EXISTING FUNCTIONS IN THIS SCRIPT
on mouseUp
global cardMenu, catalogMenu, managementMenu, indexesMenu
set hilite of me to true
showHelp (not the visible of fld "banner")
displayHelp "Banner"
set cursor to 16
repeat
--if they have one of these keys down, it may indicate they
--are a bit confused or just want to move on, so exit.
if the commandKey is down then
cleanExit
exit repeat
end if
if the optionKey is down then
cleanExit
exit mouseUp
end if
if the mouse is down then
--the user clicked somewhere
put the mouseLoc into userLoc
if item 1 of userLoc < 0 OR item 1 of userLoc > 512 OR item 2 of userLoc < -15 OR item 2 of userLoc > 345
then
--you clicked outside of the card
cleanExit
exit mouseUp
end if
--menus
if userLoc is within the rect of bg btn "Card" then
menuHelp cardMenu, "Card"
end if
if userLoc is within the rect of bg btn "catalog" then
menuHelp catalogMenu, "catalog"
end if
if userLoc is within the rect of bg btn "Management" then
menuHelp ManagementMenu, "Management"
end if
if userLoc is within the rect of bg btn "Indexes" then
menuHelp indexesMenu, "Indexes"
end if
--btns whose names may change or have names that HyperTalk
--doesn't like
if userLoc is within the rect of bg btn id 216 then
displayHelp "Card Number Btn"
end if
if userLoc is within the rect of bg btn id 353 then
displayHelpByID "list Name","353"
end if
if userLoc is within the rect of bg btn id 313 then
displayHelpBtn "Delete #…"
end if
--help objects
if userLoc is within the rect of fld "banner" then
displayHelpFld "banner"
end if
if userLoc is within the rect of bg btn "Help Close" OR userLoc is within the rect of bg btn "help" then
cleanExit
exit mouseUp
end if
if userLoc is within the rect of bg btn "Help Section" then
displayHelp "banner"
end if
if the mouseLoc is within the rect of bg btn "Help Close" OR the mouseLoc is within the rect of bg btn "Help" then
set cursor to arrow
end if
--other btns
repeat with i = 1 to the number of bg btns
if userLoc is within the rect of bg btn i then
--check for all of the exceptions
put id of bg btn i into thisID
put the short name of bg btn i into thisName
--check to see if there is help on this button
if the short name of bg btn i = "info blanket" OR thisID = 216 OR thisID = 353 OR thisID = 313 OR thisName = "Card" OR thisName = "catalog" OR thisName = "management" OR thisName = "indexes" OR thisName = "lists view" or thisName = "graphics view" OR thisName = "menu blanket" then next repeat
else
--there is help on this button
displayHelpBtn (the short name of bg btn i)
end if
end if
end repeat
--flds
repeat with i = 1 to the number of bg flds
if userLoc is within the rect of fld i then
displayHelpFld (the short name of fld i)
end if
end repeat
set cursor to 16
end if
end repeat
end mouseUp
on displayHelpByID messageText,btnId
if the visible of bg btn id btnId then displayHelp messageText
else exit displayHelpByID
end displayHelpByID
on displayHelpFld messageText
if the visible of fld messageText then displayHelp messageText
else exit displayHelpFld
end displayHelpFld
on displayHelpBtn messageText
if the visible of bg btn messageText then displayHelp messageText
else exit displayHelpBtn
end displayHelpBtn
on displayHelp messageText
put messageText into helpFunction
put substitute("#","",helpFunction) into helpFunction
put substitute(":","",helpFunction) into helpFunction
put substitute("…","",helpFunction) into helpFunction
put substitute(" ","",helpFunction) into helpFunction
put "()" after helpFunction
do "get" && helpFunction
put it into fld "banner"
end displayHelp
on cleanExit
set the icon of bg btn "Help Close" to 3358
showHelp false
set the icon of bg btn "Help Close" to 3071
put empty into fld "banner"
end cleanExit
on menuHelp menu,btnName
if the visible of bg btn btnName is false then exit menuHelp
return "Choose Print Cards from Book from the Management button to print all of the cards from a selected book." & return
end PrintCardsfromBook
function GoBack
return "Click Go Back to return to cards you’ve previously been to." & return
end GoBack
function Hardware
return "Apple Graphics Source is divided into three stacks: Hardware, Networks, and Technical. Click one of these buttons to go to that stack." & return
end Hardware
function Networks
return "Apple Graphics Source is divided into three stacks: Hardware, Networks, and Technical. Click one of these buttons to go to that stack." & return
end Networks
function Technical
return "Apple Graphics Source is divided into three stacks: Hardware, Networks, and Technical. Click one of these buttons to go to that stack." & return
end Technical
function AboutThisGraphic
return "About This Graphic displays information about the current graphic (for example, it’s description, file name, keywords, etc.). " & return
end AboutThisGraphic
function AGSLists
return "AGS Lists displays the open list and hides information about the current graphic." & return &return &"To add graphics to the open list, click Add This Graphic. To save a list, click Save. To go to a graphic in the list, click its entry in the list." & return
end AGSLists
function AssignKeyword
return "Assign Keyword enables you to select an existing keyword or keywords to assign to the current graphic." & return
end AssignKeyword
function AssignBook
return "Assign Book enables you to select an existing book to assign to the current graphic." & return
end AssignBook
function CardNumberBtn
return "This button gives you information about your location in the stack. Click it as a short-cut to using Find to locate a card by its number." & return
end CardNumberBtn
function Quit
return "Quit closes the stack and leaves HyperCard." & return
end Quit
function Find
return "Click Find to search for graphics by different criteria (for example, File Name, Format, Keywords, etc.)" & return
end Find
function FindAgain
return "Click Find Again to continue with your last search." & return
end FindAgain
function BuildAllIndexes
return "Choose Build All Indexes to build all of the indexes in the stack." & return
end BuildAllIndexes
function BuildFileNameIndex
return "Choose Build File Name Index to store all of the file names in an index. This needs to be done before you release the stack." & return
end BuildFileNameIndex
function BuildFileFormatIndex
return "Choose Build File Format Index to store all of the file formats in an index. This needs to be done before you release the stack." & return
end BuildFileFormatIndex
function FormatDescription
return "Choose Format Description to format the text in the description field. Formatting in this case means to put the first 31 characters followed by an ellipsis into the first" & return &"(visible) of the field. The entire description is stored in the rest of the field." & return
end FormatDescription
function Delete
return "Click Delete # to delete entries from the open list." & return &return &"After you click Delete #,click on the list entries you want to remove. When you are finished deleting entries, click Done." & return
end Delete
function NewList
return "New List opens a new, empty list named Untitled. If another list is already open, the stack closes it " & return &"(after prompting you to save changes) before opening a new list. Only one list can be open at a time." & return &return &"To add items to the list, click Add This Graphic to List (or press control-A). " & return
end NewList
function ListName
return "This is the name of the open list." & return
end ListName
function DeleteList
return "Delete List erases the list that you specify. Click Delete List when you no longer need a particular list." & return
end DeleteList
function PrintList
return "Print List prints the open list. You can print a list along with the thumbnail sketches of the list items, or print just the text of the list (the descriptions and file name of the items)." & return
end PrintList
function Save
return "Save saves a list to disk." & return
end Save
function FileName
return "Click File Name as a short-cut to clicking Find and searching for graphics by File Name." & return
end FileName
function FileNameField
return "Each graphic file is stored referred to in this stack is stored as a separate file. The name of this file is displayed in the File Name field." & return
end FileNameField
function List
return "The List field displays the open list. Click an entry in the list to go to that graphic." & return
end List
function AppearsInBooks
return "Click Appears In Books as a short-cut to clicking Find and searching for graphics by book." & return
end AppearsInBooks
function AppearsInBooksField
return "The Appears in Books field displays the books (along with the books’ Engineering Part Numbers) in which this graphic appears." & return &return &"Click any of the books (or Engineering Part Numbers) to search forward for graphics from that book. To search backwards, hold down the Option key." & return
end AppearsInBooksField
function Keywords
return "Click Keywords as a short-cut to clicking Find and searching for graphics by keyword." & return &return &return
end Keywords
function KeywordsField
return "The Keywords field displays the keywords assigned to describe this graphic." & return &return &"Click any of the keywords to search forward for graphics with that keyword. To search backwards, hold down the Option key." & return &return
end KeywordsField
function Description
return "Click Description as a short-cut to clicking Find and searching for graphics by description." & return
end Description
function DescriptionField
return "The Description field displays the description of this graphic." & return &return &"Click this field to search forward for graphics with the same description as the current graphic. To search backwards, hold down the Option key." & return
end DescriptionField
function Format
return "Click Format as a short-cut to clicking Find and searching for graphics by format." & return
end Format
function FormatField
return "The Format field displays the file format (or file type) of this graphic. " & return &return &"Click this field to search forward for graphics that are stored in the same format as the current graphic. To search backwards, hold down the Option key." & return
end FormatField
function AddThisGraphic
return "Add This Graphic puts the description and file name of the current graphic at the end of the open list. You can add up to 50 graphics to a list. As a short-cut to clicking this button, press control-A." & return &return &"You can continue to add graphics to the list, even if the list is hidden (as it is when information about the current graphic is visible)." & return
end AddThisGraphic
function OpenList
return "Open List enables you to open a list you have saved. If another list is already open, the stack closes it " & return &"(after prompting you to save changes) before opening the specified list. Only one list can be open at a time." & return
end OpenList
function CatalogVolume
return "Choose Catalog Volume to catalog all of the graphics on a volume (or disk). For each graphic found on the volume, a card is created in the" & return &" stack, the thumbnail is created, and the file name, file type, and file path are put into the appropriate fields." & return
end CatalogVolume
function CatalogFolder
return "Choose Catalog Folder to catalog all of the within a specified folder. For each graphic found in the folder, a card is created in the" & return &" stack, a thumbnail is created, and the file name, file type, and file path are put into the appropriate fields." & return
end CatalogFolder
function CatalogFile
return "Choose Catalog File to catalog a specified file. If the file is stored in an acceptable file format, a card is created in the stack, a thumbnail is " & return &"created, and the file name, file type, and file path are put into the appropriate fields." & return
end CatalogFile
function SetBrowsingSpeed
return "Set Browsing Speed lets you change the speed of browsing and searching through graphics. " & return
end SetBrowsingSpeed
function ImportData
return "Import Data allows you to add the graphics and text from a specified stack to the end of the open stack." & return
end ImportData
function SortbyFileName
return "Sort by File Name sorts the graphic cards by their file name." & return
end SortbyFileName
function DeleteData
return "Delete Data deletes all but one of the cards in the background The Collection. On the remaining card, the thumbnail is removed and the fields are emptied." & return
end DeleteData
function BuildKeywordIndex
return "Build Keyword Index goes to every graphics card and collects all of the assigned keywords. The keywords are sorted and stored on the Title Card." & return
end BuildKeywordIndex
function BuildBookIndex
return "Build Book Index goes to every graphics card and collects all of the assigned books. The books are sorted and stored on the Title Card." & return
end BuildBookIndex
function AddtoKeywordIndex
return "Add to Keyword Index allows you to add new keywords to the Keyword Index." & return
end AddtoKeywordIndex
function DeleteKeyword
return "Delete Keyword enables you to delete a keyword from the current card." & return
end DeleteKeyword
function DeleteBook
return "Delete Book enables you to delete a book from the current card." & return
end DeleteBook
function DeletefromKeywordIndex
return "Delete from Keyword Index enables you to delete a term from this index. After you select a term or terms, the stack finds each instance in the appropriate field" & return &" and confirms that you want to delete this term from this card. (To avoid the confirmation dialog box, hold down the Option key.)" & return
end DeletefromKeywordIndex
function AddtoBookIndex
return "Add to Book Index allows you to add new books to the Book Index." & return
end AddtoBookIndex
function DeletefromBookIndex
return "Delete from Book Index enables you to delete a term from this index. After you select a term or terms, the stack finds each instance in the appropriate field" & return &" and confirms that you want to delete this term from this card. (To avoid the confirmation dialog box, hold down the Option key.)" & return &return
end DeletefromBookIndex
function ExportKeywordIndex
return "Export Keyword Index creates a text file of all keywords assigned to graphics." & return
end ExportKeywordIndex
function ExportBookIndex
return "Export Book Index creates a text file of all books assigned to graphics." & return
end ExportBookIndex
function Next
return "This is the Next Card button. Click it to see the next card in the stack, or click and hold down the mouse button to browse through the cards." & return &return &"To change the browsing speed of the stack, hold down the Command key and click the Next Card button or the Previous Card button." & return
end Next
function Prev
return "This is the Previous Card button. Click it to see the previous card in the stack, or click and hold down the mouse button to browse through the cards. " & return &return &"To change the browsing speed of the stack, hold down the Command key and click the Next Card button or the Previous Card button." & return &return
end Prev
function OpenGraphic
return "Click Open Graphic to see the original (full-size) version of the graphic on the current card." & return &return &"Once the original grahic is open, you can copy or print all, or a selection of, the graphic." & return
end OpenGraphic
function Banner
return return &" Welcome to the Help Section" & return &return &"• Use the Help cursor (the question" & return &" mark) to click buttons and fields" & return &" to find out about them." & return &return &"• To leave Help and return to the " & return &" graphics, click the close box " & return &" of this panel." & return &return
end Banner
function HelpSection
return return &" Welcome to the Help Section" & return &return &"• Use the Help cursor (the question" & return &" mark) to click buttons and fields" & return &" to find out about them." & return &return &"• To leave Help and return to the " & return &" graphics, click the close box " & return &" of this panel." & return &return
end HelpSection
function BuildThumbnail
return "Build Thumbnail replaces any existing thumbnail sketch on the current card and pastes a new thumbnail sketch." & return
end BuildThumbnail
return "Build Thumbnail replaces any existing thumbnail sketch on the current card and pastes a new thumbnail sketch." & return
end BuildThumbnail
function GoBack
return "Click Go Back to return to cards you’ve previously been to." & return
end GoBack
function Hardware
return "Apple Graphics Source is divided into three stacks: Hardware, Networks, and Technical. Click one of these buttons to go to that stack." & return
end Hardware
function Networks
return "Apple Graphics Source is divided into three stacks: Hardware, Networks, and Technical. Click one of these buttons to go to that stack." & return
end Networks
function Technical
return "Apple Graphics Source is divided into three stacks: Hardware, Networks, and Technical. Click one of these buttons to go to that stack." & return
end Technical
function AboutThisGraphic
return "About This Graphic displays information about the current graphic (for example, it’s description, file name, keywords, etc.). " & return
end AboutThisGraphic
function AGSLists
return "AGS Lists displays the open list and hides information about the current graphic." & return &return &"To add graphics to the open list, click Add This Graphic. To save a list, click Save. To go to a graphic in the list, click its entry in the list." & return
end AGSLists
function AssignKeyword
return "Assign Keyword enables you to select an existing keyword or keywords to assign to the current graphic." & return
end AssignKeyword
function AssignBook
return "Assign Book enables you to select an existing book to assign to the current graphic." & return
end AssignBook
function CardNumberBtn
return "This button gives you information about your location in the stack. Click it as a short-cut to using Find to locate a card by its number." & return
end CardNumberBtn
function Quit
return "Quit closes the stack and leaves HyperCard." & return
end Quit
function Find
return "Click Find to search for graphics by different criteria (for example, File Name, Format, Keywords, etc.)" & return
end Find
function FindAgain
return "Click Find Again to continue with your last search." & return
end FindAgain
function BuildAllIndexes
return "Choose Build All Indexes to build all of the indexes in the stack." & return
end BuildAllIndexes
function BuildFileNameIndex
return "Choose Build File Name Index to store all of the file names in an index. This needs to be done before you release the stack." & return
end BuildFileNameIndex
function BuildFileFormatIndex
return "Choose Build File Format Index to store all of the file formats in an index. This needs to be done before you release the stack." & return
end BuildFileFormatIndex
function FormatDescription
return "Choose Format Description to format the text in the description field. Formatting in this case means to put the first 31 characters followed by an ellipsis into the first" & return &"(visible) of the field. The entire description is stored in the rest of the field." & return
end FormatDescription
function Delete
return "Click Delete # to delete entries from the open list." & return &return &"After you click Delete #,click on the list entries you want to remove. When you are finished deleting entries, click Done." & return
end Delete
function NewList
return "New List opens a new, empty list named Untitled. If another list is already open, the stack closes it " & return &"(after prompting you to save changes) before opening a new list. Only one list can be open at a time." & return &return &"To add items to the list, click Add This Graphic to List (or press control-A). " & return
end NewList
function ListName
return "This is the name of the open list." & return
end ListName
function DeleteList
return "Delete List erases the list that you specify. Click Delete List when you no longer need a particular list." & return
end DeleteList
function PrintList
return "Print List prints the open list. You can print a list along with the thumbnail sketches of the list items, or print just the text of the list (the descriptions and file name of the items)." & return
end PrintList
function Save
return "Save saves a list to disk." & return
end Save
function FileName
return "Click File Name as a short-cut to clicking Find and searching for graphics by File Name." & return
end FileName
function FileNameField
return "Each graphic file is stored referred to in this stack is stored as a separate file. The name of this file is displayed in the File Name field." & return
end FileNameField
function List
return "The List field displays the open list. Click an entry in the list to go to that graphic." & return
end List
function AppearsInBooks
return "Click Appears In Books as a short-cut to clicking Find and searching for graphics by book." & return
end AppearsInBooks
function AppearsInBooksField
return "The Appears in Books field displays the books (along with the books’ Engineering Part Numbers) in which this graphic appears." & return &return &"Click any of the books (or Engineering Part Numbers) to search forward for graphics from that book. To search backwards, hold down the Option key." & return
end AppearsInBooksField
function Keywords
return "Click Keywords as a short-cut to clicking Find and searching for graphics by keyword." & return &return &return
end Keywords
function KeywordsField
return "The Keywords field displays the keywords assigned to describe this graphic." & return &return &"Click any of the keywords to search forward for graphics with that keyword. To search backwards, hold down the Option key." & return &return
end KeywordsField
function Description
return "Click Description as a short-cut to clicking Find and searching for graphics by description." & return
end Description
function DescriptionField
return "The Description field displays the description of this graphic." & return &return &"Click this field to search forward for graphics with the same description as the current graphic. To search backwards, hold down the Option key." & return
end DescriptionField
function Format
return "Click Format as a short-cut to clicking Find and searching for graphics by format." & return
end Format
function FormatField
return "The Format field displays the file format (or file type) of this graphic. " & return &return &"Click this field to search forward for graphics that are stored in the same format as the current graphic. To search backwards, hold down the Option key." & return
end FormatField
function AddThisGraphic
return "Add This Graphic puts the description and file name of the current graphic at the end of the open list. You can add up to 50 graphics to a list. As a short-cut to clicking this button, press control-A." & return &return &"You can continue to add graphics to the list, even if the list is hidden (as it is when information about the current graphic is visible)." & return
end AddThisGraphic
function OpenList
return "Open List enables you to open a list you have saved. If another list is already open, the stack closes it " & return &"(after prompting you to save changes) before opening the specified list. Only one list can be open at a time." & return
end OpenList
function CatalogVolume
return "Choose Catalog Volume to catalog all of the graphics on a volume (or disk). For each graphic found on the volume, a card is created in the" & return &" stack, the thumbnail is created, and the file name, file type, and file path are put into the appropriate fields." & return
end CatalogVolume
function CatalogFolder
return "Choose Catalog Folder to catalog all of the within a specified folder. For each graphic found in the folder, a card is created in the" & return &" stack, a thumbnail is created, and the file name, file type, and file path are put into the appropriate fields." & return
end CatalogFolder
function CatalogFile
return "Choose Catalog File to catalog a specified file. If the file is stored in an acceptable file format, a card is created in the stack, a thumbnail is " & return &"created, and the file name, file type, and file path are put into the appropriate fields." & return
end CatalogFile
function SetBrowsingSpeed
return "Set Browsing Speed lets you change the speed of browsing and searching through graphics. " & return
end SetBrowsingSpeed
function ImportData
return "Import Data allows you to add the graphics and text from a specified stack to the end of the open stack." & return
end ImportData
function SortbyFileName
return "Sort by File Name sorts the graphic cards by their file name." & return
end SortbyFileName
function DeleteData
return "Delete Data deletes all but one of the cards in the background The Collection. On the remaining card, the thumbnail is removed and the fields are emptied." & return
end DeleteData
function BuildKeywordIndex
return "Build Keyword Index goes to every graphics card and collects all of the assigned keywords. The keywords are sorted and stored on the Title Card." & return
end BuildKeywordIndex
function BuildBookIndex
return "Build Book Index goes to every graphics card and collects all of the assigned books. The books are sorted and stored on the Title Card." & return
end BuildBookIndex
function AddtoKeywordIndex
return "Add to Keyword Index allows you to add new keywords to the Keyword Index." & return
end AddtoKeywordIndex
function DeleteKeyword
return "Delete Keyword enables you to delete a keyword from the current card." & return
end DeleteKeyword
function DeleteBook
return "Delete Book enables you to delete a book from the current card." & return
end DeleteBook
function DeletefromKeywordIndex
return "Delete from Keyword Index enables you to delete a term from this index. After you select a term or terms, the stack finds each instance in the appropriate field" & return &" and confirms that you want to delete this term from this card. (To avoid the confirmation dialog box, hold down the Option key.)" & return
end DeletefromKeywordIndex
function AddtoBookIndex
return "Add to Book Index allows you to add new books to the Book Index." & return
end AddtoBookIndex
function DeletefromBookIndex
return "Delete from Book Index enables you to delete a term from this index. After you select a term or terms, the stack finds each instance in the appropriate field" & return &" and confirms that you want to delete this term from this card. (To avoid the confirmation dialog box, hold down the Option key.)" & return &return
end DeletefromBookIndex
function ExportKeywordIndex
return "Export Keyword Index creates a text file of all keywords assigned to graphics." & return
end ExportKeywordIndex
function ExportBookIndex
return "Export Book Index creates a text file of all books assigned to graphics." & return
end ExportBookIndex
function Next
return "This is the Next Card button. Click it to see the next card in the stack, or click and hold down the mouse button to browse through the cards." & return &return &"To change the browsing speed of the stack, hold down the Command key and click the Next Card button or the Previous Card button." & return
end Next
function Prev
return "This is the Previous Card button. Click it to see the previous card in the stack, or click and hold down the mouse button to browse through the cards. " & return &return &"To change the browsing speed of the stack, hold down the Command key and click the Next Card button or the Previous Card button." & return &return
end Prev
function OpenGraphic
return "Click Open Graphic to see the original (full-size) version of the graphic on the current card." & return &return &"Once the original grahic is open, you can copy or print all, or a selection of, the graphic." & return
end OpenGraphic
function Banner
return return &" Welcome to the Help Section" & return &return &"• Use the Help cursor (the question" & return &" mark) to click buttons and fields" & return &" to find out about them." & return &return &"• To leave Help and return to the " & return &" graphics, click the close box " & return &" of this panel." & return &return
end Banner
function HelpSection
return return &" Welcome to the Help Section" & return &return &"• Use the Help cursor (the question" & return &" mark) to click buttons and fields" & return &" to find out about them." & return &return &"• To leave Help and return to the " & return &" graphics, click the close box " & return &" of this panel." & return &return